Java Technologies Optional এর মেথডসমূহ: isPresent(), get(), orElse(), ifPresent() গাইড ও নোট

270

Optional ক্লাসটি Java 8 থেকে java.util প্যাকেজে যুক্ত করা হয়েছে এবং এটি null মানের প্রাচীন সমস্যা সমাধানের জন্য ব্যবহৃত হয়। এটি মূলত একটি container object, যা null মান না থাকার সম্ভাবনা বা null মান থাকতে পারে এমন অবস্থার মধ্যে নিরাপত্তা প্রদান করে। Optional এর মাধ্যমে, আপনি এমন একটি মান গঠন করতে পারেন যা উপস্থিত (present) বা অনুপস্থিত (absent) হতে পারে।

এটি null এর পরিবর্তে ব্যবহার করা যায়, এবং null pointer exceptions (NPE) থেকে রক্ষা পেতে সাহায্য করে। Optional সাধারণত ফাংশনাল প্রোগ্রামিং এর মতো functional style কোড লেখার জন্য ব্যবহৃত হয়।

Optional ক্লাসের প্রধান মেথডসমূহ

1. isPresent()

isPresent() মেথডটি Optional অবজেক্টের মধ্যে একটি মান উপস্থিত কিনা তা পরীক্ষা করে। যদি মান উপস্থিত থাকে তবে এটি true রিটার্ন করে, আর যদি না থাকে তবে false রিটার্ন করে।

  • Usage: আপনি যখন জানতে চান যে একটি Optional অবজেক্টে কোনো মান রয়েছে কি না, তখন এই মেথডটি ব্যবহার করতে পারেন।

উদাহরণ:

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        Optional<String> optionalString = Optional.of("Hello, World!");

        if (optionalString.isPresent()) {
            System.out.println("The value is present: " + optionalString.get());
        } else {
            System.out.println("The value is not present.");
        }
    }
}

Output:

The value is present: Hello, World!
  • ব্যাখ্যা: isPresent() মেথডটি চেক করছে যে optionalString এর মধ্যে কোনো মান রয়েছে কিনা, এবং তারপরে সেই মানটি get() মেথডের মাধ্যমে প্রদর্শিত হয়েছে।

2. get()

get() মেথডটি Optional অবজেক্ট থেকে মানটি রিটার্ন করে যদি মানটি উপস্থিত থাকে। তবে, যদি Optional অবজেক্টে কোনো মান না থাকে, এটি NoSuchElementException থ্রো করবে।

  • Usage: get() শুধুমাত্র তখন ব্যবহার করা উচিত যখন আপনি নিশ্চিত হন যে Optional অবজেক্টে একটি মান আছে।

উদাহরণ:

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        Optional<String> optionalString = Optional.of("Hello, Java!");

        // Directly retrieve the value from Optional
        System.out.println("The value is: " + optionalString.get());
    }
}

Output:

The value is: Hello, Java!
  • ব্যাখ্যা: এখানে optionalString.get() ব্যবহার করা হয়েছে মানটি সরাসরি পেতে, তবে এটি তখনই নিরাপদ যখন optionalString অবশ্যই মান ধারণ করে।

3. orElse()

orElse() মেথডটি একটি বিকল্প মান প্রদান করে যদি Optional অবজেক্টে কোনো মান উপস্থিত না থাকে। এটি একটি fallback value হিসেবে কাজ করে এবং Optional অবজেক্টের মান না থাকলে তা রিটার্ন করে।

  • Usage: যখন আপনি একটি Optional অবজেক্টে একটি ডিফল্ট মান নির্ধারণ করতে চান, তখন orElse() মেথড ব্যবহার করা হয়।

উদাহরণ:

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        Optional<String> optionalString = Optional.empty();

        // If the value is absent, provide a fallback value
        String result = optionalString.orElse("Default Value");

        System.out.println("The value is: " + result);
    }
}

Output:

The value is: Default Value
  • ব্যাখ্যা: orElse() মেথডটি optionalString অবজেক্টে মান না থাকলে "Default Value" রিটার্ন করেছে।

4. ifPresent()

ifPresent() মেথডটি একটি ল্যাম্বডা এক্সপ্রেশন বা Consumer গ্রহণ করে এবং শুধুমাত্র তখন কার্যকর হয় যখন Optional অবজেক্টে মান উপস্থিত থাকে। এটি null চেক করার জন্য খুবই কার্যকর।

  • Usage: যখন আপনি শুধু তখনই কিছু করতে চান যদি Optional অবজেক্টে মান থাকে, তখন ifPresent() ব্যবহার করা হয়।

উদাহরণ:

import java.util.Optional;

public class OptionalExample {
    public static void main(String[] args) {
        Optional<String> optionalString = Optional.of("Hello, Optional!");

        // Execute the lambda expression only if the value is present
        optionalString.ifPresent(value -> System.out.println("The value is: " + value));
    }
}

Output:

The value is: Hello, Optional!
  • ব্যাখ্যা: এখানে ifPresent() ব্যবহার করা হয়েছে যাতে শুধুমাত্র যখন optionalString এ একটি মান থাকে, তখনই ল্যাম্বডা এক্সপ্রেশন কার্যকর হয় এবং মানটি প্রিন্ট করা হয়।

Optional ক্লাসের অন্যান্য গুরুত্বপূর্ণ মেথডসমূহ:

  1. isEmpty():

    • isEmpty() মেথডটি isPresent() এর বিপরীত, অর্থাৎ এটি চেক করে যে Optional অবজেক্টে কোনো মান নেই।
    • Usage: isEmpty() তখন ব্যবহার করুন যখন আপনি জানতে চান Optional অবজেক্টে কোনো মান নেই।
    Optional<String> optionalString = Optional.empty();
    if (optionalString.isEmpty()) {
        System.out.println("No value present");
    }
    
  2. orElseGet():

    • orElseGet() মেথডটি একটি Supplier গ্রহণ করে, যা একটি মান রিটার্ন করে যদি Optional অবজেক্টে কোনো মান না থাকে।
    • এটি orElse() এর মতো, তবে এখানে আপনি একটি লম্বা অপারেশন বা দ্বিতীয় মান প্রদান করতে পারেন যা Optional অবজেক্টের মান অনুপস্থিত থাকলে কার্যকর হয়।
    Optional<String> optionalString = Optional.empty();
    String result = optionalString.orElseGet(() -> "Generated Fallback Value");
    System.out.println(result); // Output: Generated Fallback Value
    
  3. map():

    • map() মেথডটি Optional অবজেক্টের ভ্যালু মানে কোন ধরনের ট্রান্সফরমেশন (যেমন, ফাংশনাল প্রসেসিং) প্রয়োগ করার জন্য ব্যবহৃত হয়। যদি মান থাকে তবে এটি প্রভাবিত হবে, আর যদি না থাকে তবে কিছুই হবে না।
    Optional<String> optionalString = Optional.of("hello");
    Optional<String> transformedString = optionalString.map(s -> s.toUpperCase());
    transformedString.ifPresent(System.out::println); // Output: HELLO
    

Optional একটি শক্তিশালী এবং নিরাপদ উপায় null মানের সাথে কাজ করার জন্য। এটি null pointer exceptions এড়ানোর জন্য উন্নত কৌশল প্রদান করে এবং ফাংশনাল প্রোগ্রামিং শৈলীতে কোড লেখার ক্ষেত্রে সাহায্য করে।

  • isPresent() এবং ifPresent() ফাংশনগুলো null চেক করার জন্য ব্যবহৃত হয়।
  • get() শুধুমাত্র তখন ব্যবহার করা উচিত যখন নিশ্চিত হন যে Optional এ মান উপস্থিত রয়েছে।
  • orElse() এবং orElseGet() default value প্রদান করে যদি Optional খালি থাকে।

Optional মেথডগুলির মাধ্যমে আপনি নিরাপদ এবং কার্যকরভাবে null এর মোকাবেলা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...